package com.ytjj.qmyx.data.util;

import com.alibaba.excel.util.StringUtils;
import com.alibaba.fastjson.JSONObject;
import com.ytjj.common.utils.HttpClientUtil;
import com.ytjj.qmyx.data.model.SanTongRequest;

import java.security.MessageDigest;


/**
 * 三通发送短信工具类
 */
public class EncryptUtil {
	public static String MD5Encode(String sourceString) {
		String resultString = null;
		try {
			resultString = new String(sourceString);
			MessageDigest md = MessageDigest.getInstance("MD5");
			resultString = byte2hexString(md.digest(resultString.getBytes()));
		} catch (Exception localException) {
		}
		return resultString;
	}

	private static final String byte2hexString(byte[] bytes) {
		StringBuffer bf = new StringBuffer(bytes.length * 2);
		for (int i = 0; i < bytes.length; i++) {
			if ((bytes[i] & 0xFF) < 16) {
				bf.append("0");
			}
			bf.append(Long.toString(bytes[i] & 0xFF, 16));
		}
		return bf.toString();
	}

	public static String sendSanTong(String url, String account, String password, String[] phones, String message) {
		SanTongRequest sanTongRequest = SanTongRequest.builder()
				.account(account)
				.password(MD5Encode(password))
				.phones(String.join(",", phones))
				.content(message)
				.sign("【XXXX优品2】")
				.build();
		System.out.println("===santong request=" + sanTongRequest.toString());
		String result = HttpClientUtil.doPostJson(url, JSONObject.toJSONString(sanTongRequest));
		return result;
	}

	public static String sendSanTong(String url, String account, String password, String[] phones, String message, String sign) {
		SanTongRequest sanTongRequest = SanTongRequest.builder()
				.account(account)
				.password(MD5Encode(password))
				.phones(String.join(",", phones))
				.content(message)
				.sign(sign)
				.build();
		System.out.println("===santong request=" + sanTongRequest.toString());
		String result = HttpClientUtil.doPostJson(url, JSONObject.toJSONString(sanTongRequest));
		return result;
	}

	public static void main(String[] args) {
		String[] phones =  new String[]{"18665853223"};
		String message = "尊敬的用户，您的验证码是:176895。请勿泄露给他人，如非本人操作，请忽略此短信。";
		message = "您购买的好玩毫无东西已发货，韵达快递单号:798451313，请您注意收货。订单查询物流跟踪、联系客服，请下载XXXX优品APP";
		message = "您好！非常抱歉，您在本平台购买的商品因疫情影响需延迟发货，具体以快递揽收时间为准，由此给您带来的不便敬请谅解！如有疑问请拨打服务热线4000xxxx，感谢您的理解与支持！点击下方链接可自助查询订单或联系在线客服 t..com/kf";
		message = "尊敬的客户，您购买的智能扫地机下单成功，正在为您加急打包发货中，请您耐心等待。点击下方链接可自助查询订单或联系在线客服 t..com/kf ，如有疑问请拨打服务热线400026xxxx";
		message = "尊敬的客户，您购买的智能扫地机下单成功，正在为您加急打包发货中，请您耐心等待。点击下方链接可自助查询订单或联系在线客服 t..com/kf ，祝您购物愉快！";
		message = "尊敬的客户，您购买的无人机下单成功，正在为您加急打包发货中，请您耐心等待。点击下方链接可自助查询订单或联系在线客服 z2m.cn/XXXXXX ，祝您购物愉快！";
		message = "您购买的无人机已出库发货，快递单号:JDVC28397正在配送中，请您留意查收。点击下方链接可自助查询订单或联系在线客服 z2m.cn/XXXXXX ，祝您购物愉快！";
		message = "尊敬的客户您好！您申请的退货退款申请已通过，请在今明两天内按照提供的售后地址把商品寄回，如超过退货期限将无法做退货退款处理；寄回后请及时上传运单号，或者告知人工客服寄回单号（温馨提示：请保持原包装寄回，不影响第二次销售。如仓库收到商品有影响二次销售的痕迹将会把商品退回，请您知悉！）";
		message = "尊敬的客户您好！您申请的退货退款申请已通过，请在今明两天内按照提供的售后地址把商品寄回，如超过退货期限将无法做退货退款处理；不要发京东和顺丰，拒收到付件，寄回后请及时上传运单号，或者告知人工客服寄回单号（温馨提示：请保持原包装寄回，不影响第二次销售。如仓库收到商品有影响二次销售的痕迹将会把商品退回，请您知悉！）";

		//大汉三通
//		System.out.println(sendSanTong("http://www.dh3t.com/json/sms/Submit", "dh42425", "gXjNTv08", new String[]{"18665853223"}, message, "【XXXX优品】"));

//		message = "您购买的智能扫地机已出库发货，快递单号:JDVC5862455正在配送中，请您留意查收。点击下方链接可自助查询订单或联系在线客服 t.xxx.com/kf ，祝您购物愉快！";
//		System.out.println(sendSanTong("http://www.dh3t.com/json/sms/Submit", "dh42425", "gXjNTv08", new String[]{"18665853223"}, message, "【XXXX优品】"));
//		message = "尊敬的客户，您提交的退款申请已通过，请您重新进入退款申请处获取退货地址，安排寄出后上传退货快递单号，我们收到退货后会在48小时内安排原路返还退款，如有疑问请拨打服务热线400026xxxx，感谢您的理解与支持，期待下次光临！";
//		System.out.println(sendSanTong("http://www.dh3t.com/json/sms/Submit", "dh42425", "gXjNTv08", new String[]{"18665853223"}, message, "【XXXX优品】"));
//		message = "尊敬的客户，您提交的退款申请已通过，您的退款会在48小时内安排原路返还，请您留意查收，如有疑问请拨打服务热线400026xxxx，期待您的下次光临！";
//		System.out.println(sendSanTong("http://www.dh3t.com/json/sms/Submit", "dh42425", "gXjNTv08", new String[]{"18665853223"}, message, "【XXXX优品】"));

	}

}